package controller

import (
	"encoding/json"
)

// 用户章节目录返回结构体
type ChapterSummaryInfo struct {
	Title     string `json:"title"`      // 目录名称
	ChapterID string `json:"chapter_id"` // 题库ID
	EndTime   string `json:"end_time"`   //到期日期
}

// 章节目录返回结构体
type ChapterInfo struct {
	Title       string         `json:"title"`           // 目录名称
	Description string         `json:"description"`     // 目录描述
	Status      string         `json:"status"`          // 目录状态
	SortOrder   uint           `json:"sort_order"`      // 同级目录排序
	Child       []*ChapterInfo `json:"child,omitempty"` // 子目录
	PaperId     string         `json:"paper_id"`        // 试卷id
}

// 考试记录返回结构体
type ExamInfo struct {
	Paper      PaperRecord      `json:"paper_record"`
	AnswerCard AnswerCardRecord `json:"answer_card_record"` // 答题卡信息
}

// 试卷信息
type PaperRecord struct {
	PaperId     string   `json:"paper_id"`
	Title       string   `json:"title"`       // 试卷标题
	Description string   `json:"dest"`        // 试卷描述
	PassScore   uint     `json:"pass_score"`  // 及格分数(可为空)
	TotalScore  uint     `json:"total_score"` // 总分(可为空)
	Questions   []string `json:"questions"`   //试卷的题目信息
}

// 答题卡信息
type AnswerCardRecord struct {
	TotalQuestions    uint `json:"total_questions"`    //题目总数
	CorrectQuestions  uint `json:"correct_questions"`  //正确题目数
	WrongQuestions    uint `json:"wrong_questions"`    //错误题目数
	UnanswerQuestions uint `json:"unanswer_questions"` //未做题目数
}

// Score 表示单个分数项的结构体
type QuestionRecord struct {
	QueID      string `json:"question_id"` // 试题ID
	Score      uint   `json:"score"`       // 试题分数
	HasAnswer  bool   `json:"has_answer"`  // 是否保存了答案
	IsFavorite bool   `json:"is_favorite"` // 是否收藏
}

// 试题信息
type QuestionInfo struct {
	Type        string          `json:"type"`        // SCQ, MCQ, T/F
	Background  json.RawMessage `json:"back_ground"` // 题目背景,
	Question    json.RawMessage `json:"question"`    // 题目
	Options     json.RawMessage `json:"option"`      // 题目选项
	Correct     []string        `json:"correct"`     // 题目正确答案
	Explanation json.RawMessage `json:"explanation"` // 题目解释
}

// 收藏试题返回结构体
type FavoriteInfo struct {
	PaperId    string   `json:"paper_id"`    //试卷id
	Title      string   `json:"title"`       // 试卷名称
	QuestionId []string `json:"question_id"` //试题id
}

// 答错试题返回结构体
type WorngInfo struct {
	PaperId    string   `json:"paper_id"`    // 试卷id
	Title      string   `json:"title"`       // 试卷名称
	QuestionId []string `json:"question_id"` //试题id
}

// 有笔记试题返回结构体
type NoteInfo struct {
	PaperId    string   `json:"paper_id"`    //试卷id
	Title      string   `json:"title"`       // 试卷名称
	QuestionId []string `json:"question_id"` //试题id
}
